home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 301-325 / disk_319 / cnewssrc / cnews.orig.lzh / doc / install.out < prev    next >
Text File  |  1989-06-27  |  18KB  |  467 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.            IIIInnnnssssttttaaaalllllllliiiinnnnggg
  11. g ````````CCCC NNNNeeeewwwwssss'''''''' NNNNeee
  12. ttttwwwwoooorrrrkkkk NNNNeeeewwwwssss SSSSoooof
  13. fffttttwwwwaaaarrrreeee
  14.  
  15.  
  16.                           Geoff Collyer
  17.  
  18.                     Department of Statistics
  19.                       University of Toronto
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.           This document describes the flow of  network  news
  27.      within  and  between machines, what each component of C
  28.      news does, and how to install C news.
  29.  
  30.  
  31.  
  32. IIIInnnnttttrrrroooodddduuuuccccttttiiiioooon
  33. nn
  34.  
  35.      Network news (or _n_e_t_n_e_w_s for short) consists of a collection
  36. of  messages formatted similarly to ARPAnet mail (see ARPA Inter-
  37. net RFC 1036 for details), widely spread.  The  logical  network,
  38. imposed on top of various real networks, formed by the set of all
  39. interconnected sites exchanging network news is called ``Usenet''
  40. and was formed in 1979, radiating out from Duke University.  Net-
  41. news is propagated between cooperating  machines  by  a  flooding
  42. algorithm,  with  some  loop prevention heuristics:  each machine
  43. sends its neighbours news that the neighbours have (probably) not
  44. yet seen.
  45.  
  46.      Flow of netnews between machines may be achieved by  use  of
  47. any  network  which can transmit an arbitrary stream of (at least
  48. 7-bit) ASCII code, unmodified.   If  a  network  cannot  transmit
  49. ASCII  intact  (e.g.  BITNET),  it  is possible to encode netnews
  50. before transmission across the network and decode it upon  recep-
  51. tion  from  the  network.  Since one cannot be certain that one's
  52. network neighbours will be up and reachable at all times,  outgo-
  53. ing netnews must be queued, at least in the case of network trou-
  54. ble.  To date, at least these networks, protocols and media  have
  55. been used to transmit netnews correctly:  UUCP, RS232, NNTP, Eth-
  56. ernet(Reg), the ARPA  Internet,  Datakit(Reg),  ACSnet,  magnetic
  57. tape, SMTP, and BITNET, though at least the last two require some
  58. form of encapsulation  to  avoid  corruption  of  articles;  SMTP
  59. because some common implementations get the newline-CRLF mappings
  60. wrong, thus throwing off  byte  counts  in  batches,  and  BITNET
  61. because  of its Procrustean chopping, expanding, mapping, bashing
  62. and smashing of all data sent through it (sending lines of 80  or
  63. fewer  characters  of  letters of either case and digits and plus
  64. and minus appears to be safe).
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.                               - 2 -
  74.  
  75.  
  76.  
  77.      Netnews arrives via some network, which causes a command  to
  78. be  executed  upon arrival (e.g.  _r_n_e_w_s).  _r_n_e_w_s typically 
  79. pools
  80. the inbound netnews  for  later  processing.   Eventually  (often
  81. within  the  hour  or  at the end of the business day), the input
  82. queue is run and the netnews is stored locally,  typically  under
  83. /_u_s_r/_s_p_o_o_l/_n_e_w_s,  and  queued  for transmission to netn
  84. ws neigh-
  85. bours.  Once stored on disk, netnews may be read by any of a col-
  86. lection  of  unprivileged news readers, including _c_a_t(1).  _E_x_p_i_
  87. _e
  88. is run typically each night to remove old netnews from disk.
  89.  
  90.      C News was originally written to provide a much  faster  and
  91. smaller, more robust, reliable and correct implementation of net-
  92. news software than B 2.11 news.  We believe that C News  is  also
  93. faster,  smaller and more robust than B 3.0 news.  B 3.0 news has
  94. many more features; take that as you will.
  95.  
  96. CCCC NNNNeeeewwwwssss CCCCoooommmmppppoooonnnn
  97. eeennnnttttssss....
  98.  
  99.      _R_n_e_w_s invokes the input  subsystem,  which  spools  incoming
  100. netnews   in   its  original  form,  as  received,  typically  in
  101. compressed batches.  Periodically, the input queue should be  run
  102. by  invoking _n_e_w_s_r_u_n, thus uncompressing any compressed input and
  103. feeding it to _r_e_l_a_y_n_e_w_s.
  104.  
  105.      _R_e_l_a_y_n_e_w_s files incoming netnews as  articles  on  disk 
  106. and
  107. initiates spooled transmission to other machines, often by simply
  108. writing the names of the disk files containing  the  articles  on
  109. the  ends  of `batch' files of file names.  Quite a bit of policy
  110. from RFC 1036 is embedded  in  _r_e_l_a_y_n_e_w_s.   _i_n_e_w_s  
  111. s  a  complex
  112. front-end  for  _r_e_l_a_y_n_e_w_s  which  implements much of the per-
  113. ite
  114. policy on news posting.  _i_n_e_w_s  is  a  fairly-slow  shell  script
  115. which  is  adequately fast for most sites, but it will need to be
  116. replaced by something more streamlined for  sites  which  gateway
  117. mailing lists into netnews, for example.
  118.  
  119.      The output _b_a_t_c_h_e_r reads lists of file names  and  generates
  120. news  batches  (see  RFC  1036  or  _n_e_w_s(5)  for  the  format) of
  121. prescribed sizes and queues the batches for transmission to other
  122. sites.   The  batcher is run asynchronously with _r_e_l_a_y_n_e_w_s, t
  123. pi-
  124. cally once an hour outside of business hours.
  125.  
  126.      _E_x_p_i_r_e is generally run once per night to remove  from  disk
  127. news  articles  older  than a few days.  _E_x_p_i_r_e can use different
  128. expiry criterion for different newsgroups and can  archive  arti-
  129. cles  instead  of removing them.  _E_x_p_i_r_e also runs asynchronously
  130. with _r_e_l_a_y_n_e_w_s.
  131.  
  132.      There are many news readers.  C News comes  with  a  limited
  133. news  reader  (_r_e_a_d_n_e_w_s  by Michael Rourke) sufficient to repla
  134. e
  135. long-winded /_e_t_c/_m_o_t_ds but you will want a heavy-duty news reader
  136. if you plan to read more than local news groups.  We recommend _r_n
  137. by Larry Wall, available from your  netnews  neighbours  or  your
  138. nearby ccccoooommmmpppp....ssssoooouuuurrrrcccce
  139. eessss....uuuunnnniiiixxxx archive site.  There are others: 
  140. _v_n and
  141. _v_n_e_w_s are two.
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.                               - 3 -
  151.  
  152.  
  153.  
  154. PPPPrrrreeeeppppaaaarrrraaaattttiiiioooonnnn f
  155. fffoooorrrr IIIInnnnssssttttaaaallllllllaaaatt
  156. tiiiioooonnnn
  157.  
  158.      Netnews consumes a lot of disk space  and  often  a  lot  of
  159. transmission time.  Here are some relevant measurements regarding
  160. a full netnews feed as of the time  of  writing  (January  1989),
  161. taken  from  _n_e_w_s._l_i_s_t_s:   a day's netnews is about 3Mb and 1
  162. 400
  163. articles in 450 newsgroups.  Years ago, sites often kept 14  days
  164. of netnews on disk, but now many sites keep news for 3 to 5 days,
  165. thus allowing for the occasional long weekend.  Thus a full  news
  166. feed  expired  after 4 days will consume about 12Mb.  Some people
  167. feel that news volume is doubling roughly every  16  months.   If
  168. this  is true, we can expect volume to increase by a factor of 10
  169. in about 4 years to 30Mb per day or 115Mb for 4 days.  It is thus
  170. wise  planning  to  set  aside  a  lot of disk space for netnews.
  171. There are two ways to cope with ever-increasing volumes  of  net-
  172. news:   refuse  to  accept  more newsgroups, or expire news after
  173. shorter intervals on disk.  A current full feed takes just over 7
  174. hours  to  transmit  at 1200 baud, so for dial-up connections one
  175. clearly wants the fastest modems one can afford.
  176.  
  177.      Clearly, transmitting a full news feed is a non-trivial com-
  178. mitment  of resources, so you may have some difficulty in finding
  179. a site willing to supply one.  Such a site may in turn expect you
  180. to  feed yet other sites.  You will need to agree with your pros-
  181. pective netnews neighbour(s) upon transfer media,  protocols  and
  182. networks.
  183.  
  184.      Before proceeding to install C News, you  should  read  this
  185. document through to the end, probably read the companion document
  186. _T_h_e _I_n_t_e_r_f_a_c_e _B_e_t_w_e_e_n _C _N_e_w_s _
  187. _n_d _T_h_e _O_u_t_s_i_d_e _W_o_r_l_d, and  possibly
  188. read  selected items in the _C _N_e_w_s _I_m_p_l_e_m_e_n_t_o_r'
  189. s _N_o_t_e_b_o_o_k and the
  190. manual pages.
  191.  
  192.      You will need to assign a user id and group  id  to  netnews
  193. (often  new  ids  called ``news''); initialise these directories:
  194. NEWSCTL (typically  ////uuuussssrrrr////lllliiiibbbb//
  195. //nnnneeeewwwwssss),  NEWSBIN  (////uuuussssrrrr////
  196. llliiiibbbb////nnnneeeewwwwssssbbbbiiiinnnn),
  197. and  NEWSARTS  (////uuuussssrrrr////ssssppppoooooooo
  198. lll////nnnneeeewwwwssss);  and  install  each  subsystem.
  199. NEWSCTL and NEWSARTS are logically one subtree, defining  a  news
  200. data  base,  but  are split for backward compatibility with older
  201. news software, particularly old news readers.   NEWSBIN  contains
  202. programs and shell scripts which might be common amongst machines
  203. sharing a common architecture (e.g.  Sun  3's);  NEWSCTL////bbbbiiiin
  204. nn  may
  205. override these.  The goal is to install the subsystems, integrate
  206. them into a working news system, and configure the news system to
  207. communicate with other news systems.
  208.  
  209.      There are a few key files that must exist before any serious
  210. attempt may be made to operate the news software.  NEWSCTL////aaaacccc
  211. tttiiiivvvveeee
  212. is the list of newsgroups that this site  knows  (is  willing  to
  213. accept  or  individually  reject),  and must be owned by the NEWS
  214. userid (the userid that owns  NEWSBIN////rrrreeeellllaaaayyyy
  215. ///rrrreeeellllaaaayyyynnnneeeewwwwssss,  typicall
  216.  
  217. _n_e_w_s).   You  will  probably want to get your initial aaaacccctt
  218. ttiiiivvvveeee file
  219. from your upstream feed and edit it to suit the set of groups you
  220. wish to receive.  Be sure to make the second field more than five
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.                               - 4 -
  230.  
  231.  
  232.  
  233. digits wide, by adding leading zeroes (ten digits is a  conserva-
  234. tive  width).   NEWSCTL////ssssyyyyssss defines the newsgroups that
  235. this site
  236. is willing to accept and describes how they are to  be  forwarded
  237. to  its neighbours.  NEWSCTL////sssseeeerrrrvvvveeeerrrr c
  238. ntains the hostname of your
  239. file server, if you have multiple machines  sharing  news  via  a
  240. network  file system.  NEWSCTL////wwwwhhhhooooaaaammmmiiii
  241. similarly contains the name
  242. by which a cluster of machines sharing news is to  be  known  for
  243. purposes  of news.  NEWSCTL////mmmmaaaaiiiillllnnnnaaaamm
  244. mmeeee is optional and contains the
  245. full (possibly dotted) name by which your cluster  is  known  for
  246. purposes  of mail.  NEWSCTL////oooorrrrggggaaaannnniiiiss
  247. ssaaaattttiiiioooonnnn (or NEWSCTL////oooorrrrgggga
  248. aannnniiiizzzzaaaattttiiiioooonnnn
  249. if you insist) contains the name of your organisation, which will
  250. be  copied  into  the  OOOOrrrrggggaaaannnniiiizzzzaaaa
  251. tttiiiioooonnnn::::   header  of articles posted
  252. locally, by default.  NEWSCTL////mmmmaaaaiiiillllppppaaaat
  253. ttthhhhssss defines  mail  routes  to
  254. machines  which  contain  aliases for postings to moderated news-
  255. groups.     NEWSCTL////lllloooogggg,     NEWSCTL////eeeerrr
  256. rrrrrlllloooogggg,     NEWSCTL////hhhhiiiissssttttoo
  257. oorrrryyyy,
  258. NEWSCTL////hhhhiiiissssttttoooorrrryyyy....ddddi
  259. iirrrr,  and  NEWSCTL////hhhhiiiissssttttoooorrrryyy
  260. y....ppppaaaagggg  must exist and be
  261. owned by the NEWS userid.  Tentative versions of all these  files
  262. are  built by the installation procedures, but it is quite likely
  263. that you'll have to edit some of them.
  264.  
  265. CCCC NNNNeeeewwwwssss IIIInnnnssssttttaaaallll
  266. lllaaaattttiiiioooonnnn
  267.  
  268.      Proceed to the ccccoooonnnnffff directory of the distribution.
  269.  There is
  270. a  major  shell file here, named bbbbuuuuiiiilllldddd, that will
  271. interrogate you
  272. at length and construct shell files to do the real work.  You may
  273. need  to do ``chmod +x build'' before running it, to make it exe-
  274. cutable.
  275.  
  276.      You will probably need your  system's  manuals  on  hand  to
  277. answer  bbbbuuuuiiiilllldddd's  questions.  Another terminal (or
  278. another window,
  279. on a bitmap  display)  would  also  be  useful.   You'd  best  be
  280. prepared  to take notes, also, as bbbbuuuuiiiilllldddd will occa
  281. ionally suggest
  282. that something be checked when you're done.
  283.  
  284.      BBBBuuuuiiiilllldddd itself does not alter any files or per
  285. orm any instal-
  286. lation  chores:   all  it  does is create shell files in the ccccoooonn
  287. nffff
  288. directory.  If you already know something about news software, or
  289. are  merely  suspicious  that bbbbuuuuiiiilllldddd hasn't done e
  290. erything right,
  291. you should probably read the shell  files  before  running  them.
  292. There  are  four  of  them:   ddddooooiiiitttt....rrrroooo
  293. oootttt, ddddooooiiiitttt....bbbbiiiinnnn, dddd
  294. oooiiiitttt....nnnneeeewwwwssss, and
  295. aaaaggggaaaaiiiinnnn....rrrrooooooootttt.
  296.  
  297.      DDDDooooiiiitttt....rrrrooooooootttt sets up th
  298.  major directories for news,  and  sets
  299. their  ownerships correctly.  It typically will have to be run as
  300. _r_o_o_t to have adequate permissions for all of this.  It is brief.
  301.  
  302.      DDDDooooiiiitttt....bbbbiiiinnnn does most of the 
  303. ork of  building  and  installing
  304. the  programs.  It should be run as the user who owns the distri-
  305. bution directories and will own  the  executable  programs  under
  306. NEWSBIN.
  307.  
  308.      DDDDooooiiiitttt....nnnneeeewwwwssss does some 
  309. ther small chores and installs  control
  310. files.   If  any of the control files already exist, it will com-
  311. plain and refuse to overwrite them, as a safety  precaution.   It
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.                               - 5 -
  321.  
  322.  
  323.  
  324. should  be run as the owner of the news files.  Since many of the
  325. files it is installing are built by ddddooooiiiitttt....bbbbi
  326. iiinnnn, that should be  run
  327. first.
  328.  
  329.      Finally,  aaaaggggaaaaiiiinnnn....rrrroooooooot
  330. ttt  tends  to  ownership  and   permission
  331. changes  on  a  few  programs  that  need  to run set-userid.  It
  332. requires the ability to change ownerships and to set  permissions
  333. on  the files afterwards, which usually means running it as _r_o_o_t.
  334. It too is brief.
  335.  
  336.      There are undoubtedly strange systems out there  that  bbbbuuuuiii
  337. illlldddd
  338. and  friends are not smart enough to cope with.  In such cases it
  339. will be necessary to edit the shell files before running them, or
  340. to  use  them  as guides and do the work by hand.  In particular,
  341. systems that require strange options in MMMMaaaakkkkeeeeffffii
  342. illlleeees  will  need  to
  343. have those inserted by hand.
  344.  
  345.      If you want to test pieces  of  C  News  without  installing
  346. them,  some (not all) of the subsystems have a ``make r'' feature
  347. that runs a regression test.  Note:  almost all of these  require
  348. that  NEWSCTL////bbbbiiiinnnn////ccccoooonnnnffffii
  349. iigggg,  or  its  local equivalent, be in place
  350. already so that shell files can find out what  PATH  (etc.)  they
  351. should be using.
  352.  
  353.      Note that it is easy to build a test news  system  which  is
  354. completely independent of other existing news systems on the same
  355. machine, or to build one which shares its NEWSBIN with another  C
  356. news  system,  or shares input of articles (e.g. running an old B
  357. news system and a new C news system off the same stream of  input
  358. until  you are confident that your new C news system is operating
  359. to your satisfaction).  See _s_u_b_s_t(1) for the mechanism which per-
  360. mits  quickly  changing  all the places that know the location of
  361. NEWSCTL////bbbbiiiinnnn////ccccoooonnnnffffiiiig
  362. gg....   After  that,  edit   this   news   system's
  363. NEWSCTL////bbbbiiiinnnn////ccccoooonnnnffffiiiig
  364. gg  and  things  should  be  set  up for separate
  365. existence.
  366.  
  367. FFFFiiiirrrrsssstttt NNNNeeeewwwwssss
  368.  
  369.      When you arrange to get a news feed from your neighbor,  you
  370. should  also  ask  him to send you the current set of articles in
  371. the newsgroup nnnneeeewwwwssss....aaaannnnnnnnoooou
  372. uunnnncccceeee....nnnneeeewwwwuuuusssseeeerrr
  373. ssss.  Several of these are  very
  374. important reading for people who are new to the net.
  375.  
  376. UUUUnnnnuuuussssuuuuaaaallll SSSSyyyysssstttte
  377. eeemmmmssss
  378.  
  379.      We believe that C News runs fine on 16-bit machines, but  it
  380. hasn't  been  tested very thoroughly on them lately.  It will not
  381. perform quite as well with the more limited space.
  382.  
  383.      Machines with very old compilers can be a  headache.   There
  384. are  some  hooks  in  hhhh////nnnneeeewwwwssss....hhhh 
  385. for  doing  without  ``void'' and
  386. ``unsigned long'', two particular problem areas, but they have to
  387. be arranged manually; bbbbuuuuiiiilllldddd does not know about t
  388. em.
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.  
  398.                               - 6 -
  399.  
  400.  
  401.  
  402.      Some very old systems  cannot  do  _s_e_t_u_i_d(_g_e_t_e_u_i_
  403. ()),  which
  404. makes  it impossible for a daemon to make directories and get the
  405. ownership right.  We provide a small program, sssseeeettttnnnneee
  406. ewwwwssssiiiiddddssss, to  run
  407. setuid-root.    RRRReeeellllaaaayyyynnnneeeewwwwssss
  408.  knows  about  it  and  invokes  it  if
  409. _s_e_t_u_i_d(_g_e_t_e_u_i_d()) fails; it then sets permissions  co
  410. rectly  and
  411. re-invokes  rrrreeeellllaaaayyyynnnneeeewwwwssss.   
  412. he  code is short enough to be read and
  413. understood in full, so that the suspicious  system  administrator
  414. can  be  sure  that  this  setuid-root program is not going to do
  415. something awful.
  416.  
  417.  
  418.  
  419.  
  420.  
  421.  
  422.  
  423.  
  424.  
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  
  438.  
  439.  
  440.  
  441.  
  442.  
  443.  
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.  
  467.